#!/bin/bash

# 服务器配置 - 请根据实际情况修改
SERVER_HOST="your-server-ip"        # 替换为您的服务器IP或域名
SERVER_USER="root"                  # 替换为您的服务器用户名
SERVER_PATH="/www/wwwroot/xhs-index" # 服务器上的网站目录

echo "🚀 开始本地构建并部署 xhs-index 项目..."
echo "=================================="

# 检查服务器配置
if [ "$SERVER_HOST" = "your-server-ip" ]; then
    echo "❌ 错误：请先修改脚本中的服务器配置"
    echo "   请编辑 deploy-local.sh 文件，修改以下变量："
    echo "   - SERVER_HOST: 您的服务器IP或域名"
    echo "   - SERVER_USER: 您的服务器用户名"
    echo "   - SERVER_PATH: 服务器上的网站目录"
    exit 1
fi

# 第一步：本地构建
echo "📦 第一步：本地构建"
echo "------------------"

# 检查 Node.js 环境
if ! command -v node &> /dev/null; then
    echo "❌ 错误：未找到 Node.js，请先安装 Node.js"
    exit 1
fi

echo "📦 Node.js 版本: $(node --version)"

# 清理旧的构建文件
if [ -d "dist" ]; then
    echo "🧹 清理旧的构建文件..."
    rm -rf dist
fi

# 检查 package.json 是否存在
if [ ! -f "package.json" ]; then
    echo "❌ 错误：package.json 文件不存在"
    exit 1
fi

# 安装依赖
echo "📥 安装依赖..."
npm install

if [ $? -ne 0 ]; then
    echo "❌ 错误：依赖安装失败"
    exit 1
fi

# 构建项目
echo "🔨 构建项目..."
npm run build

if [ $? -ne 0 ]; then
    echo "❌ 错误：项目构建失败"
    exit 1
fi

# 检查构建结果
if [ ! -d "dist" ]; then
    echo "❌ 错误：构建目录不存在"
    exit 1
fi

echo "✅ 本地构建成功！"
echo "📁 构建文件位置: ./dist"
echo "📊 文件大小: $(du -sh dist | cut -f1)"

# 第二步：上传到服务器
echo ""
echo "📤 第二步：上传到服务器"
echo "----------------------"

echo "📋 上传配置："
echo "   服务器: $SERVER_USER@$SERVER_HOST"
echo "   目标路径: $SERVER_PATH"

# 测试服务器连接
echo "🔍 测试服务器连接..."
if ! ssh -o ConnectTimeout=10 -o BatchMode=yes $SERVER_USER@$SERVER_HOST exit 2>/dev/null; then
    echo "❌ 错误：无法连接到服务器，请检查："
    echo "   1. 服务器IP/域名是否正确"
    echo "   2. 用户名是否正确"
    echo "   3. SSH 密钥是否配置"
    echo "   4. 服务器是否可访问"
    exit 1
fi

echo "✅ 服务器连接正常"

# 创建服务器目录（如果不存在）
echo "📁 确保服务器目录存在..."
ssh $SERVER_USER@$SERVER_HOST "mkdir -p $SERVER_PATH"

# 上传文件到服务器
echo "📤 上传文件到服务器..."
rsync -avz --delete --progress dist/ $SERVER_USER@$SERVER_HOST:$SERVER_PATH/

if [ $? -eq 0 ]; then
    echo ""
    echo "🎉 部署完成！"
    echo "=================================="
    echo "✅ 本地构建成功"
    echo "✅ 服务器上传成功"
    echo ""
    echo "🌐 网站地址: http://$SERVER_HOST"
    echo ""
    echo "📋 下一步操作："
    echo "   1. 在宝塔面板中配置网站"
    echo "   2. 设置 Nginx 配置（参考 nginx.conf）"
    echo "   3. 配置域名解析"
    echo "   4. 申请 SSL 证书（可选）"
    echo ""
    echo "📁 服务器文件位置: $SERVER_PATH"
else
    echo "❌ 上传失败！"
    echo "请检查："
    echo "   1. 服务器路径是否正确"
    echo "   2. 用户权限是否足够"
    echo "   3. 网络连接是否正常"
    exit 1
fi 